(include 'class/array/class.inc)

(def-class 'nums 'array)
(dec-method 'vtable 'class/nums/vtable)
(dec-method 'create 'class/nums/create)

(dec-method 'vcreate 'class/nums/create 'override)

(dec-method 'add 'class/nums/add 'virtual '(r0 r1 r2) '(r0))
(dec-method 'sub 'class/nums/sub 'virtual '(r0 r1 r2) '(r0))
(dec-method 'mul 'class/nums/mul 'virtual '(r0 r1 r2) '(r0))
(dec-method 'div 'class/nums/div 'virtual '(r0 r1 r2) '(r0))
(dec-method 'mod 'class/nums/mod 'virtual '(r0 r1 r2) '(r0))
(dec-method 'abs 'class/nums/abs 'virtual '(r0 r1) '(r0))
(dec-method 'sum 'class/nums/sum 'virtual '(r0) '(r0 r1))
(dec-method 'scale 'class/nums/scale 'virtual '(r0 r1 r2) '(r0))

(dec-method 'lisp_vecop1 'class/nums/lisp_vecop1 'static '(r0 r1 r2) '(r0 r1))
(dec-method 'lisp_vecop2 'class/nums/lisp_vecop2 'static '(r0 r1 r2) '(r0 r1))
(dec-method 'lisp_add 'class/nums/lisp_add 'static '(r0 r1) '(r0 r1))
(dec-method 'lisp_sub 'class/nums/lisp_sub 'static '(r0 r1) '(r0 r1))
(dec-method 'lisp_mul 'class/nums/lisp_mul 'static '(r0 r1) '(r0 r1))
(dec-method 'lisp_div 'class/nums/lisp_div 'static '(r0 r1) '(r0 r1))
(dec-method 'lisp_mod 'class/nums/lisp_mod 'static '(r0 r1) '(r0 r1))
(dec-method 'lisp_sum 'class/nums/lisp_sum 'static '(r0 r1) '(r0 r1))
(dec-method 'lisp_scale 'class/nums/lisp_scale 'static '(r0 r1) '(r0 r1))
(dec-method 'lisp_abs 'class/nums/lisp_abs 'static '(r0 r1) '(r0 r1))

(def-struct 'nums 'array)
(def-struct-end)
